#include "DCLQueue.h"
#include <stdio.h>
#define true 1
#define false 0

int InitDCLQueue(DCLQueue *lq)
{
    InitDCLinkList(&lq->queue);
}

void DCQPush(DCLQueue *lq, ElementType element)
{
    InsertTail(&lq->queue,element);
}

ElementType *DCQPop(DCLQueue *lq)
{
    if(lq->queue.len==0)
    {
        printf("the queue is empty\n");
        return NULL;
    }
    lq->FrontData=lq->queue.head->data;
    RemoveByIndex(&lq->queue,0);
    return &lq->FrontData;
}

int IsDCQEmpty(DCLQueue *lq)
{
    if(lq->queue.len==0)
        return true;
    else
        return false;
}

Node *GetDCFront(DCLQueue *lq)
{
    return lq->queue.head;
}

void FreeDCLQueue(DCLQueue *lq)
{
    FreeDCLinkList(&lq->queue);
}


// void main()
// {
//     DCLQueue lq;
//     InitDCLQueue(&lq);
//     for(int i=0;i<10;i++)
//     {
//         DCQPush(&lq,i+1);
//     }
//     while(lq.queue.len!=0)
//     {
//         printf("%d ",*DCQPop(&lq));
//     }
        

//     printf("\n");
//     FreeDCLQueue(&lq);
// }
